// ==================================== vue2版本说明 =================================
/**
 * vue2 建议使用vue-router3 以及Vuex3,否则很有可能出错
 * vue3 使用vue-router4 以及Vuex4
 */
// =================================================================================

import Vue from 'vue'
import App from './App.vue'
import router from "@/router";
import store from "@/store";
import directive from "@/directive";
import ElementUI from 'element-ui';
import {net} from "@/plugins/net";
import dictionary from "@/plugins/dictionary";
import CommonAPI from "@/plugins/commonFunc";
import 'element-ui/lib/theme-chalk/index.css';
import i18n from "@/i18n";
// bpmn-js 样式
import 'bpmn-js/dist/assets/diagram-js.css'
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css'
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css'
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css'
import 'bpmn-js-properties-panel/dist/assets/properties-panel.css'
import '@/assets/css/bpmn-properties-theme.css'
//右侧面板样式
import 'bpmn-js-properties-panel/dist/assets/properties-panel.css'

import '@/assets/css/base.css'


Vue.config.productionTip = false
// 注意： vue使用插件必须在new Vue之前完成

// UI插件
Vue.use(ElementUI, { size: 'small', zIndex: 3000});
// 网络插件
Vue.use(net)
// 字典插件
Vue.use(dictionary)
// 自定义指令插件
Vue.use(directive)
// vue组件通用api插件
Vue.use(CommonAPI)



new Vue({
    router,
    store,
    i18n,
    beforeCreate(){
        Vue.prototype.$bus = this; // 安装全局事件总线,此处使是把Vue实例本身挂载到了$bus中间件上
    },
    render: h => h(App)
}).$mount('#app')

// ======================= element-ui 按需引入 =====================================================
// element-ui全局设置：项目中所有拥有 size 属性的组件的默认尺寸均为 'small'，弹框的初始 z-index 为 3000。
// Vue.prototype.$ELEMENT = { size: 'small', zIndex: 3000 };
// import {
//     Pagination,
//     Dialog,
//     Dropdown,
//     DropdownMenu,
//     DropdownItem,
//     Menu,
//     Submenu,
//     MenuItem,
//     Avatar,
//     MessageBox,
//     Message
// } from 'element-ui'
//
// Vue.use(Pagination);
// Vue.use(Dialog);
// Vue.use(Dropdown);
// Vue.use(DropdownMenu);
// Vue.use(DropdownItem);
// Vue.use(Menu);
// Vue.use(Submenu);
// Vue.use(MenuItem);
// Vue.use(Avatar)
//
//
// Vue.prototype.$msgbox = MessageBox;
// Vue.prototype.$alert = MessageBox.alert;
// Vue.prototype.$confirm = MessageBox.confirm;
// Vue.prototype.$prompt = MessageBox.prompt;
// Vue.prototype.$message = Message;
// ==========================================================================================